import { getTopCategoryAPI } from '@/apis/category/index'
// 获取路由参数,onBeforeRouteUpdate=>在当前路由更新前触发的钩子函数
import { useRoute, onBeforeRouteUpdate } from 'vue-router'
import { ref, onMounted } from 'vue'

export const useCategory = () => {
  let categoryData = ref({})
  const route = useRoute()
  const getCategory = async (id = route.params.id) => {
    // 如何在setup中获取路由参数 useRoute() -> route 等价于this.$route
    const res = await getTopCategoryAPI(id) // route.params.id=>获取路由参数
    categoryData.value = res.result
  }
  onMounted(() => {
    getCategory()
  })

  // 目标：路由参数变化时，可以把分类数据接口重新发送
  onBeforeRouteUpdate((to) => {
    // console.log('路由变化了')
    // 存在问题：使用最新的路由参数请求最新的分类数据
    // console.log(to)
    getCategory(to.params.id)
  })
  return {
    categoryData,
  }
}
